/*
  Map对象，可以使用任意数据类型作为键，普通对象只能使用字符串作为键
*/

// 普通对象
const obj = {}
obj[true] = 'true'
obj[12] = '12'
obj[{ a: 1 }] = 'aaa'

console.log(Reflect.ownKeys(obj))

// Map对象
const m = new Map()
const tom = { name: 'tom' }
m.set(tom, 90)
m.set(true, true)
m.set(12, 12)
m.forEach((val, key) => {
  console.log(val, key)
})
console.log(m)
console.log(m.get(tom))
console.log(m.has(tom))
m.delete(tom)
console.log(m)
m.clear()
console.log(m)
